﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using l1cs.server.model.Instance;
using l1cs.server.model;
using l1cs.server.datatables;
using l1cs.server.serverpackets;

namespace l1cs.server.clientpackets
{
    public class C_CreateClan : ClientBasePacket
    {
        private const String _C_CREATE_CLAN = "[C] C_CreateClan";
        private static Logger _log = Logger.getLogger( typeof( C_CreateClan ).FullName );

        public C_CreateClan( byte[] abyte0, ClientThread clientthread )
            : base( abyte0 )
        {
            String s = readS();
            int i = s.Length;

            L1PcInstance l1pcinstance = clientthread.getActiveChar();
            if ( l1pcinstance.isCrown() )
            { // プリンスまたはプリンセス
                if ( l1pcinstance.getClanid() == 0 )
                {

                    foreach ( L1Clan clan in L1World.getInstance().getAllClans() )
                    { // 同じクラン名をチェック
                        if ( string.Compare( clan.getClanName(), s, true ) == 0 )
                        {
                            l1pcinstance.sendPackets( new S_ServerMessage( 99 ) ); // \f1同じ名前の血盟が存在します。
                            return;
                        }
                    }
                    L1Clan clan2 = ClanTable.getInstance().createClan( l1pcinstance,
                            s ); // クラン創設
                    if ( clan2 != null )
                    {
                        l1pcinstance.sendPackets( new S_ServerMessage( 84, s ) ); // \f1%0血盟が創設されました。
                    }
                }
                else
                {
                    l1pcinstance.sendPackets( new S_ServerMessage( 86 ) ); // \f1すでに血盟を結成されているので作成できません。
                }
            }
            else
            {
                l1pcinstance.sendPackets( new S_ServerMessage( 85 ) ); // \f1プリンスとプリンセスだけが血盟を創設できます。
            }
        }

        override
        public String getType()
        {
            return _C_CREATE_CLAN;
        }
    }
}